package com.uzai.console.service.feign;

import com.uzai.console.common.UzaiRespVo;
import com.uzai.console.dto.BaseDto;
import com.uzai.console.dto.feign.uzaicms.CmsDtkTbGoodsDetailDto;
import com.uzai.console.dto.feign.uzaicms.CmsTbGoodsSuperSearchDto;
import com.uzai.console.dto.feign.uzaicms.CmsTbGoodsTypeSearchDto;
import com.uzai.console.service.feign.impl.UzaiCmsFeignFallbackFactory;
import com.uzai.console.vo.cms.tbgoods.CmsTbGoodsFirstTypeVo;
import com.uzai.console.vo.cms.tbgoods.CmsTbGoodsInfoQueryResultVo;
import com.uzai.console.vo.cms.tbgoods.CmsTbGoodsInfoVo;
import com.uzai.console.vo.cms.tbgoods.DtkGoodsDetailVo;
import com.uzai.console.vo.feign.uzaicms.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * CMS调用微服务
 * @Auther: liuqi
 * @Date: 2021/11/24 16:22
 * @Description:
 */
@Component
@FeignClient(value = "uzai-cms-server", fallbackFactory = UzaiCmsFeignFallbackFactory.class)
public interface UzaiCmsFeignService {

    /**
     * 超级搜索查询官方大淘客商品列表
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @param cmsTbGoodsSuperSearchDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/tb/goods/search")
    UzaiRespVo<SupperSearchVo> superSearch(@RequestBody CmsTbGoodsSuperSearchDto cmsTbGoodsSuperSearchDto);

    /**
     * 查询官方大淘客淘宝商品一级类目列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @return CmsTbGoodsInfoVo
     */
    @PostMapping("/dtk/goods/types")
    UzaiRespVo<List<CmsTbGoodsFirstTypeVo>> firstTypeList();

    /**
     * 分类搜索查询官方大淘客商品列表
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @param cmsTbGoodsTypeSearchDto
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/dtk/goods/list")
    UzaiRespVo<TypeSearchVo> typeSearch(@RequestBody CmsTbGoodsTypeSearchDto cmsTbGoodsTypeSearchDto);

    /**
     * 查询首页轮播图片列表
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/home/act/carouse/list")
    UzaiRespVo<List<CMSBanner>> homeActCarouseList(@RequestBody BaseDto baseDto);


    /**
     * 查询首页优惠头条列表
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/home/act/discount/headline")
    UzaiRespVo<List<CMSBanner>> homeActDiscountHeadline(@RequestBody BaseDto baseDto);


    /**
     * 查询首页活动配置
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/home/act/nav/list")
    UzaiRespVo<List<HomeActNavEntity>> homeActNavList(@RequestBody BaseDto baseDto);

    /**
     * 大淘客单品详情查询
     * @author jitwxs
     * @date 2021/11/29 10:25
     * @return com.uzai.console.common.UzaiRespVo<java.lang.String>
     */
    @PostMapping("/dtk/goods/detail/single")
    UzaiRespVo<DtkGoodsDetailVo> dtkGoodsDetailSingle(@RequestBody CmsDtkTbGoodsDetailDto cmsDtkTbGoodsDetailDto);

}
